Lists

cons

list<n> (elt0 ... elt<n-1>) => list list (elt0 ... elt<n-1> more-elts) => list For some small N, we have fixed-arg versions of List. For larger lists, we pass in additional elements in a stack TN (possibly required to be on stack top). List* is similar.

These VOPs implement the corresponding functions:
\begin{example}
{small, fast} car (list) => value
{small, fast} cdr (list) => value
\end{example}

These VOPs set the car or cdr of a cons:
\begin{example}
{small, fast} set-car (cons new-value)
{small, fast} set-cdr (cons new-value)
\end{example}

These VOPs implement the assoc and member functions with test functions of eql and eq:
\begin{example}
assoc (item alist) => cons-or-nil
assq (item alist) => cons-or-nil
member (item list) => cons-or-nil
memq (item list) => cons-or-nil
\end{example}

getf implements the corresponding function, while putf is used to implement its setf-inverse. putf returns the new value for the list so that it may stored back into the place.
\begin{example}
getf (list indicator default) => value
putf (list indicator new-value) => list
\end{example}